/*
 * @Author: zhangweixin 
 * @Date: 2018-11-07 16:37:09 
 * @Last Modified by: zhangweixin
 * @Last Modified time: 2018-12-18 20:14:01
 */
import React from "react";
import ReactDom from 'react-dom';
// import Hello from './components/Hello/index.js'
// import Counter from './components/counter/index.js'
// import getRouter from 'router/index';
import {AppContainer} from 'react-hot-loader';
import {Provider} from 'react-redux';
import store from './redux/index';
import {BrowserRouter as Router} from 'react-router-dom';

// import React from 'react';
// import ReactDom from 'react-dom';
// import {AppContainer} from 'react-hot-loader';
// import {Provider} from 'react-redux';
// import store from './redux/index';
// import {BrowserRouter as Router} from 'react-router-dom';
// import 'style/reset.less';
/*初始化*/
// renderWithHotReload(getRouter());

// if (module.hot) {
//   module.hot.accept();
//   // module.hot.accept('./router/index', () => {
//   //   const getRouter = require('./router/index').default;
//   //   renderWithHotReload(getRouter());
//   // });
// }

// ReactDom.render(
//   <Provider store={store}>
//     {getRouter()}
//   </Provider>
// 	,
//   // <Counter></Counter>,
//   document.getElementById("app")
// )
// 添加以下这种也可以实现，react-hot-loader
// import {AppContainer} from 'react-hot-loader';
/*初始化*/
import App from './App/App';

// renderWithHotReload(getRouter());
renderWithHotReload(App);
if (module.hot) {
  // module.hot.accept('./router/index', () => {
  //   const getRouter = require('./router/index').default;
  //   renderWithHotReload(getRouter());
  // });
  // module.hot.accept('./App/App', () => {
  //   const getRouter = require('./App/App').default;
  //   renderWithHotReload(getRouter);
	// });
	module.hot.accept('./App/App', () => {
		const NextApp = require('./App/App').default;
		renderWithHotReload(NextApp);
});
}
// 好像要用下面这个替换上面的
//代码修改起来也简单,增加一段监听reducers变化，并替换的代码。
  // if (module.hot) {
  //   module.hot.accept("./reducers", () => {
  //       const nextCombineReducers = require("./reducers").default;
  //       store.replaceReducer(nextCombineReducers);
  //   });
  // }

// function renderWithHotReload(RootElement) {
//   ReactDom.render(
//       <AppContainer>
//         <Provider store={store}>
//           {/* {RootElement} */}
//           <RootElement />
//         </Provider>
//       </AppContainer>,
//       document.getElementById('app')
//   )
// }
function renderWithHotReload(RootElement) {
	ReactDom.render(
			<AppContainer>
					<Provider store={store}>
							<Router>
									<RootElement/>
							</Router>
					</Provider>
			</AppContainer>,
			document.getElementById('app')
	)
}
// function renderWithHotReload(RootElement) {
// 	ReactDom.render(
// 			<AppContainer>
// 					<Provider store={store}>
// 							<Router>
// 									<RootElement/>
// 							</Router>
// 					</Provider>
// 			</AppContainer>,
// 			document.getElementById('app')
// 	)
// }


// import React from 'react';
// import ReactDom from 'react-dom';
// import {AppContainer} from 'react-hot-loader';
// import {Provider} from 'react-redux';
// import store from './redux/index';
// import {BrowserRouter as Router} from 'react-router-dom';


// import App from './App/App';

// renderWithHotReload(App);

// if (module.hot) {
//     module.hot.accept('./App/App', () => {
//         const NextApp = require('./App/App').default;
//         renderWithHotReload(NextApp);
//     });
// }

// function renderWithHotReload(RootElement) {
//     ReactDom.render(
//         <AppContainer>
//             <Provider store={store}>
//                 <Router>
//                     <RootElement/>
//                 </Router>
//             </Provider>
//         </AppContainer>,
//         document.getElementById('app')
//     )
// }
// // import getRouter from 'router/router';
// // renderWithHotReload(getRouter());
// // if (module.hot) {
// //     module.hot.accept('./router/router', () => {
// //     const getRouter = require('./router/router').default;
// //     renderWithHotReload(getRouter());
// //   });
// // }
// // function renderWithHotReload(RootElement) {
// //     ReactDom.render(
// //         <AppContainer>
// //           <Provider store={store}>
// //             {RootElement}
// //             {/* <RootElement /> */}
// //           </Provider>
// //         </AppContainer>,
// //         document.getElementById('app')
// //     )
// //   }